package com.triones.api.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * 虚拟卡
 */
@TableName(value = "tr_bank_card")
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class BankCardDO {
    /**
     * id
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 用户id
     */
    private Long uid;
    /**
     * 卡类型（实体卡：plastic、虚拟卡：virtual）
     */
    private String cardFormFactor;
    /**
     * 卡编号
     */
    private String cardNo;
    /**
     * 卡状态
     */
    private String cardStatus;
    /**
     * 申请状态（pending：待处理、pending_recharge：待转入、succeed：成功、failed：失败）
     */
    private String status;
    /**
     * 卡唯一编号
     */
    private String cardId;
    /**
     * 卡bin信息
     */
    private String cardBin;
    /**
     * matrix账号
     */
    private String matrixAccount;
    /**
     * 会员ID；如涉及matrix产品，返回对应的连接会员信息。
     */
    private String memberId;
    /**
     * 卡本币
     */
    private String cardCurrency;
    /**
     * 卡有效期（月份）
     */
    private Integer cardExpirationDate;
    /**
     * 卡组织
     */
    private String cardScheme;
    /**
     * 卡类型
     */
    private String cardType;
    /**
     * 用卡人信息id
     */
    private String cardholderId;
    /**
     * 日交易限额（-1 or null 表示不限制）
     */
    private String maxOnDaily;
    /**
     * 月交易额度(-1 or null 表示不限制)
     */
    private String maxOnMonthly;
    /**
     * 单笔交易限额
     */
    private String maxOnPercent;
    /**
     * 转入金额（从光之易转入到卡资金）
     */
    private String rechargeAmount;
    /**
     * 请求流水号
     */
    private String requestId;
    /**
     * 是否限制可交易额度
     */
    private String transactionLimitType;
    /**
     * 可交易额度。transaction_limit_type值为limited时
     */
    private String transactionLimit;
    /**
     * 您需要用于转入的币种光子易账户ID号，您可在“光子易账户”接口中进行查询您的账户ID。
     */
    private Long accountId;
    /**
     * 到账金额
     */
    private String arrivalAmount;
    /**
     * 卡有效期，MM/YY，仅虚拟卡展示
     */
    private String expirationDate;
    /**
     * cvv信息
     */
    private String cvv;
    /**
     * 卡片激活时间
     */
    private String activationTime;
    /**
     * 创建时间
     */
    private Long createTime;
    /**
     * 收件人信息
     */
    private String recipientId;
    /**
     * 卡号（掩码）
     */
    private String cardNumber;
    /**
     * 制卡状态（"pending:处理中" "produced:制卡完成"）
     */
    private String produceStatus;
    /**
     * 物流单号
     */
    private String trackingNumber;
    /**
     * 修改时间
     */
    private String updatedAt;
    /**
     *用卡人姓名缩写,作为实体卡卡面上用卡人姓名，申请实体卡时必填(Last Name/First Name-姓/名)长度：最多26个字符，包括一个“/ “ 要求：全大写字母
     */
    private String cardholderNameAbbreviation;
    /**
     * 总交易限额
     */
    private String totalTransactionLimit;
    /**
     * 当值为'Y'此卡支持更新账单地址；值为'N'则此卡不支持变更账单地址。
     */
    private String billingAddressUpdatable;
}
